﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class CADFinal
    {
        static private String cadenaConexion = ConfigurationManager.ConnectionStrings["JurassicBDConnectionString"].ConnectionString;

        public DataSet ObtenerTablaFinal()
        {
            DataSet dsFinal = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                string consulta = "SELECT id_fin as 'ID',nombre_fin as 'Nombre', lugar_fin as 'Lugar', descripcion_fin as 'Descripcion' from Finales";
                SqlDataAdapter daFinal = new SqlDataAdapter(consulta, conexion);
                //daObjeto.Fill(dsFinal, "Objetos");
                daFinal.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                daFinal.Fill(dsFinal, "Finales");
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return dsFinal;
        }


        /*
        public DataSet InsertarTablaFinales( string nombre, string lugar, string descripcion)
        {

            DataSet dsFinal = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "insert into Finales (nombre_fin, lugar_fin, descripcion_fin) VALUES ('" + nombre + "','" + lugar + "','" + descripcion + "')";
                SqlDataAdapter daFinal = new SqlDataAdapter(consulta, conexion);
                daFinal.Fill(dsFinal, "Finales");
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return dsFinal;
           }



           public DataSet EditarTablaFinales( string nombre, string lugar, string descripcion )
           {
               DataSet dsFinal = new DataSet();

               try
               {
                   SqlConnection conexion = new SqlConnection(cadenaConexion);
                   String consulta = "update Finales set nombre_fin='" + nombre + "', lugar_fin=" + lugar + ", descripcion_fin=" + descripcion +  "' where nombre_fin='" + nombre + "';";
                    SqlDataAdapter daFinales = new SqlDataAdapter(consulta, conexion);
                    daFinales.Fill(dsFinal, "Lugares");
                }

                catch (Exception ex)
                {
                    throw (ex);
                }

                return dsFinal;
           }


            public DataSet BorrarTablaFinales(String nombre)
            {
               DataSet dsFinal = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "delete from Finales where nombre_fin like '" + nombre + "';";
                SqlDataAdapter daFinales = new SqlDataAdapter(consulta, conexion);

                daFinales.Fill(dsFinal, "Lugares");
            }

                catch (Exception ex)
                {
                    throw (ex);
                }
                return dsFinal;
            }*/
            public DataSet ObtenerFiltradoFinales(string filtro)
            {
                DataSet dsFinal = new DataSet();

                try
                {
                    SqlConnection conexion = new SqlConnection(cadenaConexion);
                    string consulta = "SELECT id_fin as 'ID',nombre_fin as 'Nombre', lugar_fin as 'Lugar', descripcion_fin as 'Descripcion' from Finales where nombre_fin like '%" + filtro + "%'";
                    SqlDataAdapter daFinales = new SqlDataAdapter(consulta, conexion);
                    daFinales.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                    daFinales.Fill(dsFinal, "Finales");
                    
                }
                catch (Exception ex)
                {
                    throw (ex);
                }

                return dsFinal;
            }



            public bool ActualizarTablaFinales( DataSet dsFinales)
            {
                bool resultdo = false;

                try
                {
                    SqlConnection conexion = new SqlConnection(cadenaConexion);
                    string consulta = "SELECT id_fin as 'ID',nombre_fin as 'Nombre', lugar_fin as 'Lugar', descripcion_fin as 'Descripcion' from Finales";
                    SqlDataAdapter daFinales = new SqlDataAdapter(consulta,conexion);
                    SqlCommandBuilder cb = new SqlCommandBuilder(daFinales);
                    daFinales.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                    cb.ConflictOption = ConflictOption.OverwriteChanges;
                    /*
                    daFinales.UpdateCommand = cb.GetUpdateCommand();
                    daFinales.Update(dsFinales, "Finales");
                    dsFinales.Tables["Finales"].AcceptChanges();*/

                    daFinales.Update(dsFinales, "Finales");

                    resultdo = true;

                }
                catch(Exception exc)
                {
                    throw (exc);
                }

                return resultdo;
            }

            public DataSet ObtenerTablaFinalesPorLugar(String lugar)
            {
                DataSet dsFinales = new DataSet();

                try
                {
                    SqlConnection conexion = new SqlConnection(cadenaConexion);
                    string consulta = "SELECT id_fin as 'ID',nombre_fin as 'Nombre', lugar_fin as 'Lugar', descripcion_fin as 'Descripcion' from Finales where lugar_fin like '%" + lugar + "%'";
                    SqlDataAdapter daFinales = new SqlDataAdapter(consulta, conexion);
                    daFinales.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                    daFinales.Fill(dsFinales, "Finales");
                }
                catch (Exception ex)
                {
                    throw (ex);
                }

                return dsFinales;
            }

            public DataSet ObtenerTablaFinalesPorObjeto(String NombreObjeto)
            {
                DataSet dsFinales = new DataSet();

                try
                {
                    SqlConnection conexion = new SqlConnection(cadenaConexion);
                    string consulta = "SELECT id_fin as 'ID',nombre_fin as 'Nombre', lugar_fin as 'Lugar', descripcion_fin as 'Descripcion' from Finales,Objetos_Finales,Objetos where nombre_fin=nombrefinal_objfin and nombreobjeto_objfin=nombre_obj and nombre_obj='" + NombreObjeto + "'";
                    SqlDataAdapter daFinales = new SqlDataAdapter(consulta, conexion);
                    daFinales.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                    daFinales.Fill(dsFinales, "Finales");
                }
                catch (Exception ex)
                {
                    throw (ex);
                }

                return dsFinales;
            }
        }
    }

